﻿/*----------------------------------------------------------------
//  <copyright file="FunctionInputDtoBase.cs" company="MicroCloud@151504200868">
//      Copyright © 2020-2024 MicroCloud Corporation, All rights reserved.
//  </copyright>
//  <site>https://gitee.com/chenmm123/microclouds</site>
//  <last-editor>cmm</last-editor>
//  <last-date>2022-12-21 17:05</last-date>
//----------------------------------------------------------------*/

namespace MicroCloud.Authorization.Dtos
{
    #region "输入Dto基类：功能信息"
    /// <summary>
    /// 输入Dto基类：功能信息
    /// </summary>
    public class FunctionInputDtoBase : IInputDto<long>
    {
        #region "属性"
        #region "获取或设置 主键，唯一标识"
        /// <summary>
        /// 获取或设置 主键，唯一标识
        /// </summary>
        [DisplayName("编号")]
        public long Id { get; set; }
        #endregion
        #region "获取或设置 访问类型"
        /// <summary>
        /// 获取或设置 访问类型
        /// </summary>
        [DisplayName("访问类型")]
        public FunctionAccessType AccessType { get; set; }
        #endregion
        #region "获取或设置 是否启用操作审计"
        /// <summary>
        /// 获取或设置 是否启用操作审计
        /// </summary>
        [DisplayName("是否操作审计")]
        public bool AuditOperationEnabled { get; set; }
        #endregion
        #region "获取或设置 是否启用数据审计"
        /// <summary>
        /// 获取或设置 是否启用数据审计
        /// </summary>
        [DisplayName("是否数据审计")]
        public bool AuditEntityEnabled { get; set; }
        #endregion
        #region "获取或设置 数据缓存时间（秒）"
        /// <summary>
        /// 获取或设置 数据缓存时间（秒）
        /// </summary>
        [DisplayName("数据缓存秒数")]
        public int CacheExpirationSeconds { get; set; }
        #endregion
        #region "获取或设置 是否相对过期时间，否则为绝对过期"
        /// <summary>
        /// 获取或设置 是否相对过期时间，否则为绝对过期
        /// </summary>
        [DisplayName("是否相对过期时间")]
        public bool IsCacheSliding { get; set; }
        #endregion
        #region "获取或设置 是否从库读取数据"
        /// <summary>
        /// 获取或设置 是否从库读取数据
        /// </summary>
        [DisplayName("是否从库")]
        public bool IsSlaveDatabase { get; set; }
        #endregion
        #region "获取或设置 是否锁定当前信息"
        /// <summary>
        /// 获取或设置 是否锁定当前信息
        /// </summary>
        [DisplayName("是否锁定")]
        public bool IsLocked { get; set; }
        #endregion

        #region "获取或设置 数据版本 IDataVersion 可装载接口，用于乐观并发处理"
        /// <summary>
        /// 获取或设置 数据版本
        /// 在实体提交验证后（增加、修改）会自动设置一个时间戳值持久化至数据库
        /// 修改、移除时取实体数据库值与提交值比对，如不一致则拒绝提交
        /// </summary>
        public long DataVersion { get; set; }
        #endregion

        #endregion

    }
    #endregion

}
